Yr re mn nme
x BOSTON COMPUTER SOcIBRTY x
x Newsletter of the BoSTUG (Sinclair/Timex User Group) x
x Vol 7 Noo ee *
EDITOR’S HOTES DIRECTORY
Time Designs Magazine recently Co-director Peter Hale
had a newsletter competition for
Sinclair/Timex User Groups. We
submitted our May issue. Surpris-
ingly, we did not finish last.
Nor, did we finish first.
Said the judges, ".... clean pro-
duction. Interesting articles ...
leaning more heavily to the QL.
This Sinclatr SIG has been around
since "day one”. It has had some
ups and downs ...”
Rarely does a judgee agree with a
Judge, but we agree entirely. An
editor with a QL knows others who
sometimes let us twist their arms
and our active group is heavily
into QLs.
On this page we have sought con-
tributions from other Sinclairs
but, with notable exceptions, the
request has fallen on deaf ears.
(Past pleas for members to let us
know what turns them on have been
lonely cries in the wilderness,
so we draw your attention to this
month's centerfold.)
Wot commented on by the judges,
but one reason we tied for eighth
in a field of 22, was a lack of
any distinguished graphics.
To correct this deficiency we
invite you to crank up your crea-
tive juices and submit designs
for the following:
1. A Newsletter cover. (The BCS
logo is available in paste art.)
2. A Banner Head (See page top).
To encourage you to squeeze the
juices, a year's subscription to
Time Designs (see review) will be
the first prize and you will have
your name immortalized in print.
BoSTUG Sinclair/Timex Newsletter
(617) 889-0830
John Kemeny
(508) 263-3347
General Questions John Kemeny
(508) 263-3347
John Kemeny
(508) 263-3347
Software Librarian Jim Rodlin
(508) 481-2155
Al Boehm
(617) 275-1097
Peter Hale
(617) 889-0830
Peter Hale
(617) 889-0830
Flexi-BBS (617) 648-7651
Sysop: Bob Cutter 646-4425
THE TIMEWARP(BBS(508) 481-0555
Sysop: Jim Rodlin 481-2155
Member Services
Liason
Co-dtrector
Machine Language
SuperBASIC Guru
Editor (pra tem)
QL sub-Group
Will
(617)
Stackman
547-0655
The Sinclair/Timex Neweletter is
the official publication of the
Sinclair/Timex User Group of the
Boston Computer Society (BoSTUG).
Annual membership for New Englanc
residents is £35.00 ‘otherwise
$28.00) per year. Subscription
ta BCS/Update and one other news-
letter is included without cost.
The newsletter has an exchange
policy with Sinclair/Timex User
groups willing to reciprocate.
Please forward exchange issues to
the editor pro tem, Peter Hale,
P.O. Box 8763, Boston, MA 02114,
Unless copywritten by the author,
articles are in the public dom-
ain. Attribution is requested.
- 1- September/October 1988
CONTENTS
ue]
“
09
1)
iditor's Notes
Jirectory
YHEN ERROR
°ston Productivity Tips
salendar Notes
snug as a Bug
snug Conference
ixchange Newsletters
"S 2068 Machine Cade-Review
fagazine Reviews
sarken Ramdisk
will Filesaver
3CS Programming Project
31NGO
last Coast Sync Fest 10
\bout Taolkit II 11
sOlumnifying Quill 12
OWODNGUAD®WNNNK RH
WHEE ERROR
“he listing in the Atomic Powered
2L, in the last issue had an
ror. Line 100 should read:
.0O IF LEN (u$S<>20 THEN u$=""’:
GO TO 40
jestern papers, please copy.
PSION PRODUCTIVITY TIPS
n the three years since getting
1 QL, I continue to be surprised
.t little secrets it reveals.
fere is a new one and two aldies
s30me haven't tumbled to yet.
\ Qn screen, the number zero (0)
1aS @ Slash so it looks different
‘rom the capital letter 0. Most
winters have a dip switch set-
‘ing so the zero can be printed
rithout the slash. Pretty, but
mce in a while you actually want
she slash in the zero, as when
winting a listing from Quill.
n the bowels of the QL’s charac—
‘er set is <CTRL><SHIFT> F which
§& Iike slash zero. QLs and many
ipson/Seikoshas can print this.
i In the Psion programs there is
. screen re-draw key <SHIFT><F5>.
<creen redrawing rewrites the
screen. It's useful in Quill if
30STUG Sinclair/Timex Newsletter
on-screen text jumps all over the
place during editing.
When inserting text in the middle
of a document, space opens in the
middle of the screen to let Quill
give you and it some room. Adda
character in the middle of text
and everything after is pushed
one byte in RAM. Keep this up at
@& rapid pace and the screen gets
stressed trying to keep up. At
the end, text doesn't always
close up neatly. <SHIFT><F5> is
Pston's equivalent of Valium.
§ Speaking of <SHIFT><F5>, not
everyone knows about <CTRL><F5>,
which pauses on-screen scrolling.
In SuperBASIC, without Toolkit Il
extensions ‘and sometimes with),
and in programs which send all
kinds of stuff to the screen but
have no built-in pause, it can ba
desirable to pause the program.
LISTing a program, COPYing a file
to scr or doing a TORE DiRectory,
can be frustrating. crolling is
paused by pressing <CTRL><F5>; to
continue, press <CTRL><F5> again.
Actually, any key press continues
scrolling but CTRL F5 is best. It
does not register in the buffer
and consequently is not mistaken
for a subsequent INKEY$, or its
equivalent, as a keyed response.
- Peter Hale
CALENDAR NOTES
The Sinclair Timex User Group
General meeting will be held on
October 19, 1988, at 7:30 pm at
the U. Mass Harborside Campus on
Columbia Point. The room is 063
Wheatly Building.
The QL sub-group next meets on
December 5 at John Mitchell's in
Westwood. As this is a private
home, please call John at (617)
326-5420 so he can tell you how
to get there.
For other information contact
Peter Hale or John Kemeny.
Sues September/Octaber 1988
‘, —_——
ena =o
SHUG AS A BUG \__~—
On cold evenings of my childhood
my grandmother would wrap me in a
handwoven blanket and settle in
front of the fire to read mea
story. But before the story she
would always say, " and there you
are, snug as a bug in ae rug."
The sense of being protected has
lasted with me to this day every
time 1 hear the word ‘snug’.
In 1988 SHUG is
Sinclair
Group.
the acronym for
North American Users
It's objective is to sup-
port all Sinclairs across this
vast continent, maintain PD and
shareware software libraries, act
as a referal service, publish
newsletters and generally promote
Sinclair computers. It is to com-
plement, not compete with, local
user groups.
All worthy goals. Realistic?
Who's to say? Some wet blankets
have editorially mused that it is
a bug ina rug, because af ill-
defined organization, nalve econ-
omics and avoidance of reality.
Yet, for all the talk of the Sin-
clair being ‘dead’, consider: —
1. Hardware peripherals for the
T/S 1000 continue to come to mar-
ket and survive.
<e. The Larken disk controller
for the T/S 2068 tis a technical
and financial success.
3. Time Designs Magazine turns a
profit.
4. Sinclair computers are virtu-
ally the only ones that permit
novice hackers to understand the
inner workings. Somewhere, there
have to be training grounds to
get hands-on, basic understanding
of machine cade.
not dead nor will
they die. Like old soldiers they
will fade away, but in the mean-
time thousands of Sinclair owners
power up and get productive use,
vast entertainment and much sat-
Sinclairs are
BoSTUG Stinclair/Timex Newsletter
APPLICATIONS SOFTWARS for the QL
fron EMSOFT
MAILBAG An address database you
won't believe. Labels,
Rotary index cards, zip
sorting, Tickler filing,
3 column printout, many
automatic features and
much more 256K+
TAX-I-QL Spreadsheet for IRS tax
returns 384K+
QLAHD LORD Manage up to 99 units
and do Schedule E.
(Soon) S56K+
TRUST_FUND Track investments an
net worth. Retain cost
basis (Soon) 256K+
$19.95 ea ppd on 5 1/4" DSQD
(+$2.00 on microcartridge)
BMSOFT
P.O. Box 8763, Boston, MA 02114
(617) 389-0830
isfaction from their computers.
The arguement for SNUG is that 1:
smaller groups disband, there can
be a vehicle for continuing sup-
port and assistance to new users:
as they come into the fold. New
Users? Yes, daily new people are
turned on to Sinclairs and there
is no media attention to connect
these people to the experienced.
Mel Nathanson, 7515 Arbordale [r.
Port Richey, FL 34668 is collect-
ing names and addresses of thos:
who are interested in the concept
and/or want more info. His phone
is (813) 863-5552.
Drop him a postcard. At wors:
you're out 15¢ (17¢ if you watt?)
- Peter Hale
= 30> Septemsber/October 1988
SHUG CONFERENCH ;
(Minutes of the SNUG ‘Sinclair
North American User Group? con-
ference of 8/17/88 on Compuserve)
We met on the Timex section of
Compuserve on Wednesday, August
17 at 9pm to discuss SNUG. Among
the 13 active participants were:
-Mel Nathanson (Chairman pro-tem
of SNUG), Gary Lessenberry ‘of
CATUG), Paul Holmgren (CISTUG),
Sysop Dave Rothman (Compuserve),
Jim Rodlin (the Boston Computer
Society), Greg Popovich ‘of LIST)
and several others.
The meeting was active, and many
interesting ideas were proposed.
There were two primary topics:
A) The SWUG Newsletter, and
B) The SHUG Public Domain Library
At the beginning of the discus-
sion, since we were all confirmed
modem users, it was suggested
that a BBS be the central point
for SHUG. But it was acknowledged
that many users either cannot or
will not use their modems (for
whatever reason). So even as the
idea to disseminate the newslet-
ter from a BBS was proposed, it
was eliminated. It was decided
that any newsletter would HAVE to
be in hard-copy format. It was
also felt that SNUG should
definitely have its own separate
newsletter rather than depend on
other publication(s). This would
give a stronger sense of identity
on the part of the membership.
As far as the Public Domain
Library went, consensus was more
aifficult to reach. In the
beginning, once-again, it was
proposed that the library should
be up for downloading. But this
was eliminated, largely for the
same reasons as’ the newsletter.
Then, it was proposed that we
confine it strictly to tape media
since everyone can read tape. But
the objection was raised that
this would consttute a very big
demand on the time at the
Librarian. It was then suggested
that the disk formats should also
BoSTUG Sitnclair/Timex Newsletter
The mechanics of
such a system were discussed for
some time, the most prominent
idea being to have "“Sub-Libr-
arians"” to handle the various
specific formats. But no firm
conclusion was reached.
be supported.
The idea of setting up an
Echomail system based on Fidonet
was obriefly discussed. Two T/S
BESes are currently based on
Fidonet nodes with a third to be
added soon. The current ones are
the Passaic BBS (node 107/559)
and the Bus Depot (node 112/4).
There seemed to be some enthu-
siasm for the idea.
The last item of business was
that we agreed to meet again on
Compuserve on Wednesday, August
31st at 9:00pm EDT.
- Pete Fischer
(Phoenix Pete’)
We found a small supply of 2X
Spectums and ZX Interface 1's
in their original cartons.
They won't last at these prices?
ZX Spectrum with 240v FS
(or use TS 2068 PS) $40.00
Zi Interface 1 $30.00
(plus $5.00 sth ea)
Visa/Master Card accepted
ask for Neal.
And ask about our prices on
wide carriage, daisy wheel
QUME serial printers
ELI HEFFROH & Sons inc.
Computer Equipment & Peripherals
139-145 Hampshire St.
Cambridge, MA 02139
1-800-892-9230 1-617-547-4005
September /Uctober 1988
EXCHANGE HEWSLETTERS
Since renewing our publication
schedule in January, BoSTUG gets
exchange newsletters from many
groups across the continent.
newsletters are available to
at the bi-monthly meet-
When someone figures out
keep track of loan-outa,
will be available for take—
Suggestions!
The
nembers
ings.
how to
they
out and matilout.
The
from
Quality
most reliable is
Lemoyne, PA, with whom we tied
for eighth place in the Time
Designs Magazine contest in May.
and quantity vary.
the HATS
Vernon Smith whoa edits the
Washington, DC, CATS newsletter
puts out the meatiest and most
professional newsletter. It won
second place in the TDM contest
and was the top newsletter pro-
duced on a Sinclair computer.
This editor is pleased that some
of what we publish is of interest
to others. The Chicago area
Wite-Tines News copied Mike
Mitchell's article and listing,
“Telecommunications on the QL".
What was most interesting is that
they got it from the Phoenix, AZ,
based Q2X which specializes in
Sinclair Telecommunications.
We don't even exchange with then,
yet! They got it from the group
in Dallas. By the time it got
back to us, a POKE had been added
and a line changed. Congratula-~
tions, Mike!
We have also uncovered in the BCS
archives exchange newsletters
from 1983/1984, the heyday of
Sinclair computing.
We really
Newsletter
need a Coordinator of
Exchange to summarize
the best for inclusion in this
newsletter. It has gotten beyond
the abilities of the editor to
keep up. Volunteers, PLEASE!
- Peter Hale
BaSTUG Sinclair/Timex Hewsletter
TS 2068 MACHINE CODE
A Book Review
Introduction to 2068 Machine Code
by Dr. Lloyd Dreger & Advanced
2068 Machine Cade by Dr. Lioyd
Dreger / S.M.U.G.
{A note to readers: The differ-
ences between "assembly language"
and "machine language’ are subtle
and unimportant in this review.
For the purposes of this article,
the two terms may be considered
equivalent.)
There are many good books’ that
teach BASIC programming for
beginning and advanced T/S 2068
programmers. However, the 2008
programmer interested in assembly
language programming is faced
with a shortage of information.
Although there is no shortage of
books on Z-80 assembly language,
none of them cover the T/S 2068
and its operating system. An
exception is the T/S 2068 Tech-
nical Manual, but that book was
never intended to be a tutorial.
Dr. Lloyd Dreger, of the Sinclair
Milwaukee Users Group, saw this
problem and decided to do some-
thing about it. The result is
two books. The first, a 213 page
manual called Introduction to
2068 Machine Code, covers nearly
every as t of machine language
on the 2068, including a tutorial
on the basic concepts behind
machine language programming. It
was written with the assumption
that the reader knows BASIC, but
not necessarily machine code.
However, those who already know
eomething of Z-80 machine code
will benefit just as much as the
beginning student. The manual
goes to the heart of the 2068,
explaining the BASIC interpreter,
the 2068 memory map, video modes
& screen addressing, the system
variables, and sound.
Armed with a thorough = under-
standing of the inner workings of
the 2068 and the basic concepts
(Cont page |Q)
- § - September/October 1988
MAGAZINE REVIEWS
Orphan computers are lonely and
have communication problems. It
is not enough to be loved.
If that orphan is a Sinclair, the
other problem is magazine costs.
Sinclair users operate on tight
budgets and UK subscriptions also
take forever to arrive.)
Six vital magazines are published
in Worth America-land and maybe
you don't know about them yet.
The grand daddy and guru of them
all is Time Designs Magazine. Its
4000+ subscribers might also call
it The Journal of Record of North
American Timex/Sinclair Computing
TDM has goodies for each Sinclair
model and clone. It also has the
best (excellent) graphics.
Regular contributers include such
luminaries as Fred Nachbaur, Stan
Lemke, Paul Bingham, Mike de Sosa
and others.
Each issue always has columns and
programs for all three classes of
Sinclairs, but its other value is
that it is where everyone adver—
tises - hardware, software, etc.
The May/June (Vol 4,No0 4 - $3.00)
issue lists 55 user groups and 94
companies that support Sinclairs.
Three magazines support TS 2068's
(and Spectrum).
The most unusual is Byte Power on
cassette - no typing listings —
and mostly in machine code. It's
bi-monthly on a flexible schedule
put the software is extemely well
written and often unique.
Back issues and software reprints
are available.
UP-DATE Computer Systems comes
quarterly. It is one third list—
ings and supports every 2068 disk
controller in each 50 page issue.
It has excellent reviews and a
sense of humor. Now supports QL.
BoSTUG Sinclair/Timex Newsletter
“contacts.
The SyncWare Group publishes two
bi-monthlies for the Sinclair and
both are internationally reknown.
SyncWare Hews has been in print
Since 1983. It's for ZX-60 thru
TS-2068 computers.
Quantum Levels is just for QLs.
Both are 16 page bi-monthlies for
anyone who explores a Sinclair's
full potential. No one who enjoys
hacking should be without which-
ever one applies. Beginners may
sometimes feel overwhelmed, but
there is something for everyone.
AS much as anyone, Syncware Group
has its ear to the ground for the
latest scoop and poop in the T/S
community. It has good overseas
The worst that can be
noted is the (temporary) lag from
editing to production and dearth
of graphics.
Finally, do not overlook Conmputer
Shopper, a hardy habitue of conm-
puter flea markets. There is an
orphan column and much classified
activity directed to Sinclairs.
The Bottom Line: You get change
out of a twenty dollar bill for
a year of most magazines.
Byte Power, 1748 Meadowview Ave.,
Pickering, ONT, CANADA L1V 3G8.
US$32.00 for 6 issues. ($2.00 for
Catalogue/Demo tape, a must buy?)
Computer Shopper, P.O. Box F,
Titusville, FL 32781. $2.95 at
computer stores; by subscription,
monthly. (Various special deals?
SyncWare Group, 602 S. Mill St.,
Louisville, OH 44041. $18.9/yr,
bi-monthly, for SyncWare News or
Quantum Levels. (Sample $2.00)
Time Designs Magazine, 29722 Hult
Road, Colton, OR 97017. $16.95/yr
bi-monthly. (Also get May-June do
User Group issue for $3.00)
UF-DATE, 1317 Stratford Avenue,
Fanama City, FL 32404. $15.00/yr,
quarterly.
= 65> September/Octaober 1988
LARKEN RAMDISK for T/S 2068
A Review
I recently received an order from
Larken Electronics with Ramdisk
on a medium-sized (3x7) circuit
card and a replacement EPROM chip
for the LKDOS disk controller
cartridge.
The chip is an updated version of
the disk operating system so that
LKDOS can support the ramdisk.
The Ramdisk board has a feed-thru
connector that plugs into the
rear expansion buss of the 2068,
and 4 empty sockets on the back-
side of the card. These sackets
hold the ramchips, which must be
vought separately. At one edge
of the ramdisk board is a battery
clip to hold two "AAA" batteries.
Vith batteries installed, the
contents of the ramdisk are pres-
erved when the 2068 ts turned off
or Ramdisk is unplugged.
The LKDOS Ramdisk accepts up to
four 32K ram chips without modifi-
cation for up to 128K of storage.
The board uses 32 x 8K static ram
chips (part no 43256L or 62256L).
To install memory beyond 128K,
four more empty sockets must be
soldered ‘piggyback’ to the first
four ram chips, but this is rela-
tively simple for anyone who has
used a soldering tron.
Once installed, the ram is ‘form-
atted’ with a single command from
basic and ready for use.
The Ramdisk behaves exactly like
an ordinary disk drive in LKDOS,
only a lot faster. The same com-
mands are used; only where ordin-
ary drives are numbered Zero to
Three, the Ramdisk is drive Four.
PRINT #4: CAT '"* instantly res-
ponds with a catalog of the files
under a heading "Disk drive name:
RAMDISK". I could even change the
Ramdisk drive name with Larry
Kenny's recently released disk
editor utility.
saved to
2068 on
AUTOSTART files can be
the Ramdisk. Turn the
BoSTUG Stnclair/Timex Newsletter
while pressing ENTER and the "J"
key Simultaneously will boot the
AUTOSTART file from ramdisk in-
stead of the regular disk drive.
Screen images loaded from the
Ramdisk consecutively appear so
quickly that an animation effect
is achieved. 1 found that being
able tao load, save, boot and re-
load files to ramdisk continually
instead of disk saves a lot of
time and hassle. When I'm done,
I dump the contents to a floppy.
This illustrates the Ramdisk's
intended use to speed up existing
programs when files are loaded
and saved frequently, as opposed
to increasing your disk space.
Also, a 266K ramdisk stores more
than an ordinary single-sided,
double-density floppy disk.
The only problem 1 have encount-
ered sq far is some interference
batween the Ramdisk board and the
‘stock' ZSIYO RS-232 card and
modem at 1200 baud. However, 1!
do not know if this is a problem
with the Ramdisk, software, the
ZS1/O, or plain power drain. (As
it is, l have 7 devices chained
to the back of my 2068). Other
than that, I have found the LKDOS
Ramdisk to be one of the most
versatile tools yet for the 2068.
Any serious 2068 user would do
well to consider purchasing one.
The LKDOS Ramdisk is available
from Larken Electronics at RR #2,
Navan, Ontario, Canada K4B 1H9
and most local T/S dealers. Ram-
chips for the Ramdisk are about
$14.00 apiece at Jameco (415-592-
-8097 to order). Chip sockets are
about 50¢ each at Radio Shack.
- Jim Rodlin
{(Ramdisking capacity is often the
cheapest way to increase speed,
since the most annoying delays in
using a computer are when access—
ing media. For the QL, memory
expansion plus ramdisk software
make microdrive cartridges
bearable. -— Ed)
i Ce September/October 1988
QUILL FILESAVER
More than once, my @L has mangled
a long Quill document through
poor disk or microdrive lO.
Either I removed the cartridge
before closing a file, or the QL
tried to write part of the file
to a non-existent track on the
disk or the QL crashed. The
result is the same - any attempt
to reload the file into Quill
results in a File L/O Incomplete
error, disasterous if you forgot
to periodically backup your work.
encounter forced me to
at how Quill
One such
take a deeper look
files are stored. 1 could do
this with "BGET", which reads a
Single byte from a file. Most
disk systems and toolkits have
this command.
I used BGET to print out the
humeric value of every character
in my partially-corrupted Quill
file to learn its structure and
60 recover at least part of it.
The most striking discovery was
that Quill files use the Wull
character ([CHR$(0)] in place of
Carrtage Returns. I also noticed
that a good portion of the Quill
file 1s formatting information,
stored towards the end of the
file. It is mostly strange con-
trol characters. All the text was
present, but some formatting
information was cut off during
the incomplete SAVE.
I tried renaming the file with a
_LIS” extension and importing
that, but Quill didn't like the
NUL's and stopped importing the
file at the first occurance of a
MUL.
So 1 had to figure out a way to
extract the ‘text’ portion of my
document and re-write it as
straight ASCII. BPUT came to the
rescue and the result is the
listing below. In a nutshell,
the program reads a byte from the
damaged file in channel #5. If it
is a null, it's changed to a
carriage return ([CHR$(13)]; tf a
BoaSTUG Sinclair/Timex Newsletter
control character (less than
SPACE [(CHRS$(Q2)) but not CR), it
is changed to a space. Otherwise,
it is a regular ASCII character
and left as is.
The now ASCII character is writ-
ten to the new file in channel#o.
The character is also printed to
the screen so you can watch as it
goes through the file. Then the
loop repeats tor the next
character until there are no more
characters to read. What is left
is a plain text file which can be
imported into Quill. 1! was able
to recover a 15 page document
this way, though it took about
ten minutes to do so.
Hopefully you will never need to
use this utility, but if you do,
here it is.
- Jim Rodlin
10 REMark
REMark
"Filesaver”
Corrupted Quill file
30 REMark recovery utility
40 REMark by Jim Rodlin
50 REMark Requires Toolkit
60 REMark commands BGET & BPUT
80 REMark In the public domain
90 REMark Attribution requested
100 FLP_EXT: REMark or TK2_EXT
enable extended command set
110 CLS
120 OPEN#S, “mdve_MYFILE doc”
: REMark file to save
130 OPEN _WEW#6, "mdvi_BBS_ lis"
: REMark output ASCII file
140 REPeat loop
150 BGET#5, a%: REMark get byte
and put in a%
160 IF a% =O THEN LET a% =13
REMark convert null to CR
165 REMark replace all control
chars with SPACE
170 «=IF a% <2 AND a% £713 THEN
LET a% =32
180 REMark print character to
screen for visual feedback
190 IF a% =13 THEN PRINT
: REMark Carriage Return
200 =IF a% <713 THEN FRINT
CHRS$ 4);
210 BPUT#s, a%: REMark write
ASCII byte to LIS file
220 END REFeat loop
- &- September/October 1988
BCS PROGRAMMING PROJECT
The BCS Sinclair/Timex User Group
has launched a project ta develop
a state-of-the-art BBS program
for the T/S 2068 computer. We are
looking for volunteers to parti-
cipate in the project. A know-
ledge of Pascal or 280 Assembly
language would be helpful.
We will build advanced features
into the software, including 1200
baud, Xmodem, and networking with
other 2068 BBSes. The software
will be developed under LKDOS
V3.0. You need not live in Mass-
achusetts to participate.
If you are interested, phone Jim
Rodlin at (508) 481-2155, or
write to him at 66 Chandler St.,
Marlboro, MA 01752. By modem, he
can be contacted on the BCS
TIMEWARP BBS at (508) 481-0555,
8/1/H 300 baud.
BINGO
There are ‘ona or two Sinclair
computer users who play Bingo, or
whose family does. From the
‘HACKER’, the official newsletter
of the Timex/Sinclair User Group
of Las Vegas, NV, comes this gem
for the 2068 that prints out
BINGO cards on a 2040 printer.
QL users may want to convert to a
SuperBASIC program to get a bet-
ter understanding of AT, BEEP,
BORDER, FOR and TAB (use TO in-
stead), which have slightly dif-
ferent constructs.
LPRINT, of course, is unavailable
in SuperBASIC. Instead, insert
line 5 : ‘OPEN#3,serl' ta open a
channel to the printer, then use
‘PRINT#3,’ instead of 'LPRINT’.
This is also an easy program to
change GO SUB routines to Super-
BASIC procedures.
BoSTUG Sinclair/Timex Newsletter
OrWDNRKE
-9 -
REM "BINGO’
BORDER 1: PAPER 6:
CLS : CLS
GO TO 600
FRINT AT 2,1;"Welcome to the
Bingo Parlor’';AT 3,4;"Here ar
@ your options:’;AT 6,4;" 1
~ PLAY BINGO"; AT 8,4," 2 -
PRINT OUT BINGO CARDS" ;AT 10,
4; " 3 - MASTER CALL SHEET";
AT 12,4;"° 4 - STOF’; AT 20,1
"Enter Option Number (1-4):'
INPUT z: CLS
GO TO 20% =1)>+90% (2=3 +700 ¢
Z=3)+85% (27*4)
RANDOMIZE
DIM y$(75)
LET 1$="BINGO"
BORDER 3: PAPER 7: CLS : CLS
: PRINT AT 2,10;"Bingo Caller
‘AT 8,6°° CALLING: “;AT 12,6
“Press ENTER for next call";
AT 16,3;" NW for New Game':AT
18,3;" Q ta Quit"
FOR z=1 TO 75
LET r=INT (RND*75)+1
IF y$@)="%"" THEN GO TO 50
PAUSE 80: PRINT AT 8,17;* '":1
SCLIIT (/15+.95));"—"""r:: BEB
P 2,4
LET y$«r>=''*"
IF INKEYS$=** THEN GO TO 70
IF INKEYS="N" OR INKEYS$=" n"
THEN CLS: GO TO 6
IF INKEYS="Q" OR INKEYS=" q"
THEN PAUSE 200: CLS: STOP
FRINT AT 8,18;"
NEXT z
CLS : STOP
PRINT AT 11,17'HOW MANY CARDS
DO YOU WANT?";
INK 0
INPUT cards: PRINT AT 11,30;c
ards: PAUSE 80
FOR x=1 to cards
LFRINT ,,,,
LPRINT "
a.
LPRINT ,,,,
LFRINT : LPRINT " THE HAM
MER HUTCH CASINO”: LPRINT : L
PRINT " KB KI«KNW «kG
* OQ *
DIM y$(75)
DIM a(S)
GO SUB 300
FOR g=1 TO 5
GO SUB 400
FOR z= 1705
LET atZ>=INT (RND*15+ (z-1)*15
+
September/October 1988
620
700
70
706
708
BoSTUG Sinclair/Timex Newsletter
IF yS(a(z))="k" THEN GO TO 14
0
LET yS$(a(z))="%"
NEXT z
IF y=3 THEN LET a(3)=0
LPRINT TAB 3;"*";TAB 53a (1);T
AB 8;"*";TAB 10;a(@);TAB 13;"
x's
te y=3 THEN LPRINT TAB 14;"FR
IF y<o3 THEN LPRINT TAB 15;a¢
3);
LPRINT TAB 18;"%";TAB 20;a (4)
STAB 23;°4";TAB 25ja(2);TAB 2
BK;
GO SUB 400
GO SUB 300
NEXT y
FOR z=1 TO 5
LPRIST,,
NEXT z
NEXT x
CLS
GO TO 500
LPRINT "”
RAKKKKKR"
RETURN
LPROT " * x * x
x x"
RETURN
PRINT AT 4,4?'Choose your nex
t Option:";AT 7,8;" 1 —- Mor
e Cards";AT 9,8;" 2 - Play B
INGO"’;AT 11,8;" 3. - Master C
alling Sheet";AT 13,8;"° 4 -
STOP';AT 20,1;"Enter Option N
umber (1-4):"
INPUT q$: PRINT AT 20,28;q$
IF q$="1" THEN CLS: GO TO 90
IF q$="2" THEN PAUSE 80: CLS:
GO TO <0
IF q$="3" THEN CLS: GO TO 700
IF q$="4" THEN CLS: STOP
PRINT AT 4,8;"WELCOME TO THE”
FLASH 1: FRINT AT 6,8;" HAMME
R HUTCH ";AT 7,8;" CASINO
": FLASH 0
PRINT AT 12,0;"COME IN AND SI
T IN ONE OF OUR COMFORTABLE
CHAIRS IN OUR BINGO PARLOR.
AKAARKKAKAKKAKAAKAKALE
PRINT OUT A COUPLE OF CARDS,
GRAB A PEN OR PENCIL, AN
D HAVE SOME FUN."
PAUSE 300: CLS: GO TO 6
BORDER 0: PAPER 7: INK 0
CLS: CLS
PRINT AT 10,1;"Master Call Sh
eet now printing”
PRINT
perro,
710 LPRINT "Master Call Sheet"
715 LPRINT "--------—
720 LPRINT "B"
722 LPRINT "1 2 3 4 5 6 7
&"
724 LPRINT "9 10 11 12 13 14 15"
726 LPRINT "I"
728 LPRINT "16 17 18 19 20 21 22
23"
730 LPRINT "24 25 26 27 28 29 30"
732 LPRINT "NH
734 LPRINT "31 32 33 34 35 36 37
38"
736 LFRINT "39 40 41 42 43 44 45"
738 LPRINT "G"
740 LPRINT "46 47 48 49 50 51 52
53°"
742 LPRIST "54 55 56 57 58 59 60"
744 LPRINT "0"
746 LPRINT "61 62 63 64 65 66 67
68"
748 LPRINT "69 70 71 72 73 74 75"
750 LPRINT "
755 LPRINT ssosns
800 BORDER 0: PAPER 7: INK 0
810 CLS: CLS
820 GO TO 6
900 SAVE "BINGO” LINE 1: BEEF .75
,12: BEEF .47,8
999 STOP
BAST COAST SYEC FEST
The Capital Area Timex Sinclair
Croup (CATS), Washington, DC has
announced it will sponsor a Sin-
clair Computer Fest in May, 1989.
Major Vendors are participating
and it is expected to be the
outstanding Sinclair Fest.
A major advantage of this fest is
its central location on the East
Coast and will expect attendance
from some of the nearby centers
of T/S manta.
The Fest will be at the Howard
Johnsons in New Carrollton, MD,
close by the METRO with con-
nections to the entire DC area.
The BCS will sponsor a table and
arrange for group transport and
accomdations. Watch this space
for further details.
- 10 — September/October 1988
ABOUT TOOLKIT II
Are there any QL owners who if
they don't have TK2, have nat
been strongly advised to get it?
Anyone who has keystroked COPY
mdv2_fred to mdvi_fred a zillion
times to backup media finds WCOPY
worth the price alone.
Certainly, the Toolkit II manual
is a forbidding document. There
is no tutorial; just a list of
keyword extensions with limited
and sometimes incomplete direc-
tions on their use.
There is not even a clue as to
where to get your feet wet, so a
sampling of easy and immediately
useful keywords is offered here.
Toolkit II extensions that are
easy and that you will enjoy are:
ALARM, CLOCK, DLIST, EX, EXTRAS,
EV, FREE MEM, RENAME, SPL, SPLF,
STAT, TK2_ EXT, VIEW, WCOPY, WDIR,
WMON, WRENN, WTV, and VSTAT.
All can be explored from direct
mode and you can't get in Gnuch)
trouble (‘except for difficulty
understanding the manual).
But a lot of people are missing
out on three excellent features
incorporated in Toolkit I1: ED,
ALTKEY and last line recall.
Last line recall <ALT><ENTER> is
usually useful in direct mode in
SuperBASIC. It recalls all char-
acters since the last ENTER. Done
several times in sequence, it
recalls several lines at a time.
Once recalled, lines can be edit-
ed or reexecuted. It also works
from Psion programs, as a quick
and dirty copy, up to Psion's 22
character buffer limit.
ALTKEY is worth exploring. It is
buried in the back of the manual
in Section 21 and little is said
about it. Essentially it permits
writing macros. The syntax is
ALTKEY '‘x’,’...." whera x is any
one of the QL's character set.
In the example, x is lower case.
BoSTUG Sinclair/Timex Newsletter
Everything after ‘x’, and within
the quotes happens when the com-
bination <ALT><x» is pressed. If
<ENTER> is desired for executing,
the ALTKEY definition can end
with ,*° «comma and two single
quotes), which is <ENTER>.
How to use ALTKEY is not concep-
tually easy. One use is ALTKEY
2°, CHRS(240)&'lflpl_setup'’,’’.
This line is incorporated in my
Quill boot. The same disk also
has the file ‘setup_doc’ on it.
Satup_doc is my style sheet for
correspondence. It has my return
address, the date and salutation
position and no footer. I don't
reorganize Quill's default page
each time 1 write a letter; I!
press <ALT><)1>.
Programmers assign ALTKEYs to oft
used keywords (without an ENTER?)
to emulate single-stroke keywords
popular in earlier Sinclair's. A
boot with a batch of user defined
ALTKEYs anda final line NEW is
run at the start of programming.
NEW clears SuperBASIC memory (but
not the ALTKEY definitions.)
Finally, there is ED that invokes
a full screen SuperBASIC editor.
The cursor keys move the cursor
over the full screen. They can be
combined with ALT and SHIFT for
special effects. It is easter ta
edit existing programs with Over-
writing (SHIFT F4, as in Quill).
SuperBASIC programs often have a
number of duplicate or near dup-
licate lines. Editing a line
number replicates the line ata
new position and retains the old
line. If slight modification is
required, overwriting speeds any
needed changes.
line
For fun, slip in ED as a
‘anywhere in a SuperBASIC progran.
Run it. Predictably, when the
program reaches ED, it halts and
goes into full screen edit made.
Now press <ESC>. What happens?
-Peter Hale
anaes ©: September/October 1988
COLUNEIFY ING QUILL
by Mike Padlipsky & Peter Hale
The trouble with having been a
working programmer in one’s youth
is that you spend the rest of
your life under the constant
threat of getting readdicted to
that particular form of obeessive—
compulsive behavior.
(The trouble with being an ex-
programmer who's also a Published
Author, by the way, is that you
feel obligated to spend much more
time describing programs than
writing them. This can boggle a
newsletter, unfortunately. Sq be-
tween my rewriting and his con-
pressing, what you're seeing is
about 60% of what your Editor
originally got. [In case anybody
cares, The Book is The Hlements
of Networking Style, Prentice-
Hall, 1985.) >)
So when, for obscure reasons we
needn't bother with here, I deci-
ded the other week that I needed
to be able to print a Quill docu-
ment in Double Strike Condensed
mode, in columns, | knew I had a
probilen. That meant I'd have to
write a program todo it. And
that meant I'd have to run the
risk of getting rehooked, just as
l had for several months last
year, shortly after acquiring my
QL. As a matter of self-protec-
tion, then, I consciously did the
program in the simplest, laziest
way | could think of, so as to
re-expose myself for only an hour
or two, and sat back to enjoy it.
There's even trouble with sitting
back and enjoying your columnify-
ing program, though. Part of the
enjoyment was bragging how nifty
it was to Peter Hale, who'd been
helpful itn the planning stages
and who'd expressed a desire for
such a program to produce this
very newsletter. Zap. Temptation
again. He wanted it to be more
“user friendly"; suggested all
sorts of embellishments, indeed.
Having already produced my
BoSTUG Sinclair/Timex Wewsletter
‘Sweetened Condensed" columnized
document (it's lovely, thanks), I
managed to hold firm, though, and
convinced him-—in part by promis-—
ing to do the writeup myself:
more trouble--to do his own
version of the thing. So what
follows 1s actually a collabora-
tive effort. Peter assures me I'm
entitled to take credit for the
semi-elegant SuperBASIC gimmick,
so I will; but anything you don't
like about the user interface,
blame on hin.
All 1 ever wanted was to run a 65
character wide Quill document off
into a file named colify_lis,
having forced it to have an even
number of whole pages by blanking
enough lines at the bottom to
come out right, make it print out
in columns, and just run off the
end because 1 remembered from the
Lost Months of a year ago that
there was something funny about
end-of-file detection with Quill.
USAGE
The first thing to do its to make
a Quill document with an approp-
riately narrow line. The table
at the end of the article gives
maximum line lengths for antici-
pated type faces. In my short
version (here for those who don't
want all the typing for Peter's
version) choose a non-O margin.
Its width will also be the width
of the column separator.
How to end the file is important
in Feter's version. The last
line has to consist of only a
<CTRL-SHIFT-K> and _ an Enter. This
makes life easier than coping
with the imponderables of how
Quill ends lis files. For my
version just pad the Quill file
out with one or two Page Breaks,
to end up with an even number of
pages when you're done. Close
the channels by hand when it runs
off the end of the file.
Now run the Quill document off
to a _lis file. I.E. type colify
over the “printer” prompt as the
last step of the Frint command;
- 12 - September/October 1988
dd
you don't even need to specify
the _lis part, it's furnished by
the Quill program automagically.
(The version Peter will stick in
lets you select any file name
allowed by Quill.)
The next trick is toa invoke the
columnifier program by irunning
whatever name you saved it under.
My version just gives two columns
of Sweetened Condensed, provided
the Quill document is no more
than 66 columns wide. Fire up
Peter's and it'll start asking
you about various things like
linewidth, typeface and soa on. It
will even let you alter the left
margin and respecify the width of
the column separator.
Moet of the usage is as nearly
self-explanatory as these things
ever are. If things really seen
fouled up, be of good cheer: you
can always get out by hitting
<CTRLO<SPACE>, since it is, after
all, a SuperBASIC progran.
The one obscure point, in my hum-
ble but dogmatic opinion, is this
business of “text frame’. (That's
the measured width of two columns
of text, includin the column
separator, for a chosen type face
without regard for left margin
adjustments. The ‘out of range’
prompt takes into account margin
adjustments.)
Not everyone will use the maximum
width for a given type face. To
avoid a cramped look, it may be
necessary to widen the column
separator. If the output is toa
be reduced, a full 8 inches of
text frame may be excessive.
There are doubtless a number of
fine points I'm overlooking here,
but with any luck at all, that's
all you need to know about colun-
nifying prior to using the pro-
gram —- except for the Limitations
mentioned below, anyway. If it
isn't, the REMarks in the program
listing might well help even if
you're not a4 programmer and would
otherwise be totally disinclined
to look at then.
BoSTUG Stinclair/Timex Newsletter
Another point about my lazyman's
version might be in order: if you
decide to use it rather than the
full version and want to adapt it
for other than Condensed, Peter's
code should help in deciphering
what you have to send ta the
printer. The thing to be wary of
is that you must diddle the type-
face before you fiddle the tab
Satting. (It might seem obvious,
but overlooking it doubled the
time I spent writing the code.)
Oops. One more featura: Peter's
version has the option to run the
output into a file (which will
have same "first name" as your
lis file, with the suffix —_col)
if you want to copy a number of
_coOl files to seri all at once.
LIMITATIONS
st and foremost: if the
Preamble in your printer driver
does a reset (i.e., has ESC,@),
get rid of it!!! It took me hours
of headscratching and a couple of
lengthy conversations with Peter
to figure out why the full-up pro-
gram didn't let my machine make a
draft of this very article. Sigh.
The lack of page numbering is
noted and won't be apologized
for; my psychic well being ts at
stake here. (Perhaps Peter will
be shamed into doing it himself;
check for notes after the list-
ings.) (Why wait? You know that
Editors have no shame! -Ed)
The main thing to realize is that
this is a fairly dumb little
program at heart. All it does is
read 66 lines out of a _lis file,
change the CRs at the end of each
line to Tabs, then read the next
66 lines and concatenate them
with the first 66 ‘one at a time,
of course) before doing a Super-
BASIC PRINT statement with them
to the printer.
So if you're doing a lot of boald-
facing or underlining in = your
document, be aware that if you
don't turn them off at the end of
Rach line, they'll slop over into
- 13 - September/October 1988
either the righthand column or
the next lefthand line when
printing. Similar considerations
apply to meta-Quill fancies, like
selective italicizing by having
appropriate Translate entries in
your printer driver.
Sorry about that, but
would have become
hairy to have the program keep
track of that sort of thing for
you. If you don't have a feel
for the problem being described,
don’t worry; if and when you get
funny looking output, it'll be
clear how to deal with it whether
or not the semi-explanation made
sense just now.
it really
unacceptably
There are also some limitations
in the printers you're likely to
hook up to a QL, like the bizarre
fact that Boldface temporarily
disables Condensed, or the subtle
point that if you do run the
output into a file you can't
reimport the file into Quill for
further fiddling in columnized
form because one of the printer
control codes ends in <HUL>,
which makes Quill stop importing.
But I won't try to remember any
others than those two since there
isn't anything we can do about
them and I've probably gone on
too long anyway.
THE LISTINGS
in all its
Here comes mine,
minimalist glory:
110 DIM lcols (66,80)
120 DIM rcols (66,80)
130 OPEN_IN #3,’flp2_colify_1lis'
140 OPEN #4,'ser1’
150 PRINT #4,CHRS (27);'@';
CHRS$ (27);'G';CHRS$ (15);
CHRS (27);'D’;’B' ;CHRS (0);
160 FOR it=1 TO 66
170 INPUT #3, 1co01$(1)
175 j=CHR$(13) INSTR 1col1$(1)
180 3 =1c01$(1,j9=CHRS (9)
190 END FOR 1
200 FOR i=1 TO 66: INPUT #3,
reol$s (i)
210 FOR t=1 TO 66: PRINT #4,
lceol$ (1) & rcols(t)
220 GO TO 160
If the 'B' in Line 150 puzzles
you, it's just the lazyman's way
of spelling chr$(66). And for any
programmers watching, | do have
Dykstra's permission for 220.
More than enough of this
ishness. Over to Feter:
fool-
There really isn't much to add to
Mike's prose. The three pages of
listings are tedious to type in.
If you do, save it as Bi_col_bas
by starting with line 2000, a wee
procedure to help you save the
program by just typing s <ENTER>.
To get the listing and somewhat
different instructions from those
above, send a microcartridge and
$3.00 handling to the Sinclair
group at the BCS.
Remember: No header and no footer
in the Quill document and =~»9no
Reset in the printer _dat Preamble
for when you create the lis
file. Terminate any enhancement
where the line ends and reset it
where the line begins below.
In the long version set the left
margin to zero; Bi_col_bas lets
you adjust margins and column
separator widths later. And don’t
forget how many columns you set
the right margin for. Let the
last two characters in the name
of the lig file be the number as
a memory aid.
Here are the maximum number of
columns per line:
Maximum
Type face characters/ line
Double-wide 18
Standard (Pica) 38
Blite 46
Condensed 66
If you anticipate proportional
typeface, the limits can be
increased by a factor of 1.1.
There's nothing in Bi_col_bas
that shouldn't be feasible in
another BASIC to Bi-columnify any
ASCIlI-fied document and it should
be most elegant on a T/S 2068.
BoSTUG Sinclair/Timex Newsletter - 14 - September/October 1986
1 REMark BI-COLUMMIFIER
2 REMark Prints a _lis file
3 REMark aS two columns to 4 page
5 REMark by Mike Padlipsky
ei ? REMark & Peter Hale
8&8 REMark Sinclair/Timex User Group
9 REMark Boston Computer Society
10 REMark One Center Plaza
11 REMark Boston, MA 02108
13 REMark Attribution requested
14:
15 REMark Progam assumes Epeon compatible printer codes
16 REMark See line 1500 & ff far codes needing changes
100 init: open _file: char_col_line: CHAR_wid: CHAR 2: verify
110 print_file: PRINT_col
1cO CSIZE 3,0: AT 20,5: INK 0: PRINT "; FINIS ?
130 BEEP 0,50: PAUSE (150): BEEP: STOP
150 DEFine PROCedure gky
160 anS=INKEY$(-1): an=CODE(an$): PRINTIan$s
170 END DEFine gky ,
200 DEFine PROCedure init
210 WINDOW 512,256,0,0: INK 6: PAPER 2: CLS: CSIZE 3,1
220 WINDOW 312,220,15,0: BORDER 2,6: CLS: AT 4,2
230 FRINT “BI-COLUMNIFIER": CSIZE 1,0
240 PRINT" by Mike Padlipsky & Peter Hale"
250 PRINT\N\,"Press <SPACE> to run": PAUSE: CLS
260 k=0: mar=0: tb=4: r=1: n$=CHRS(0): p$=n$: t$=n$: wS=n$
270 4c_i=5: typ$="Standard ": nlq$="Draft": spcS=typs
280 END DEFine init
300 DEFine PROCedure char _col_ line
310 PRINT\" Enter number of characters per"
320 INPUT “ line in original text:"!c_c_1$ :c_c_l*c_c_1$
330 IF c_c_1>66
340 PRINT\"” “tco_c_l1!"characters too wide to"
350 PRINT " bi-columize the document."
360 PRINT " 66 is maximum for condensed type.”
370 PRINT\" Re-do your document.": STOP
380 END IF
390 END DEFine char_col_line
400 :
500 DEFine PROCedure CHAR wid
510 PRINT\” Select character width": PRINT
520 IF c_c_1<19 THEN PRINT,'<D> ouble wide"
530 IF c_c_1<39 THEN PRINT,"<S> tandard (Pica»’
540 IF c_c_1<47 THEN PRINT,'<E> lite”
550 IF c_c_1<67 THEN PRINT,”"<C> ondensed"”
560 PRINT\" Enter choice (d/s/e/cy';: gky
570 SELect ON an
580 =68,100: wS=CHRS$ (27)&'W"&CHR$ (1): wid$="Double Wide"
590 =80,112,83,115: wid$="Pica": c_i=10
2 600 =69,101: wS=CHR$ (270&"'M": wid$="Elite’: c_1=12
610 =67,99: wS=CHR$ (15): wid$="Condensed": c_1=17
620 =REMAINDER : CLS: RUN
630 END SELect
640 END DEFine CHAR wid
650 :
BOSTUG Sinclair/Timex Mewsletter - 15 - September/October 198&
ni eS 5 De em 5
700 DEFine PROCedure CHAR 2
710 PRINT\” Italic character type? (y/n)";: gky
720 IF ans=="y" THEN t$=CHRS$ (27)&"4": typ$="Italic"
730 IF c_i<il2
740 PRINT\" Proportional spacing? ‘(y/n>;:
750 IF an$=="y" pe pa ey Bry
760 pS=CHRSE (27&"'p"SCHRS$ (1): spcs="Propor') ": r=1.1
770 END IF : END IF
780 spce$=spcef$s(c_i*m&" char/inch"
790 PRIBT\" W.L.Q. Printing mode? (y/n>";: gky
800 IF an$=="y" THEN
810 REMark c_i<i2 if your Epson can't do NLQ in elite
820 IF c_1<17
830 n$=CHRS (27 &''x"*&CHRS$ (1): nlq$="Near Letter Quality”
840 ELSE
850 n$=CHR$ (27 &''G"*: nlq$=""Double Strike"
860 END IF : END IF : CLS
870 c_l=c_c_lvr: tab=INT(tb&rt+c_1): d_f=I1NT (10% (tabt+tc_1)/c_1+.5)
880 END DEFine CHAR_2
890 :
900 DEFine PROCedure verify
910 PRINT,” DOCUMENT FORMAT”
920 PRINT" Char fount’ ,typs
930 PRINT * Char size’’,wid$
940 PRINT " Spacing” spcS
950 PRINT " Text frame",d_ f/10f'inches”
960 PRINT " Printing mode",nlq$
970 PRINT N" Left Char/ Column Rel tab Text"
980 PRINT “ Margin line Sep'tr position frame”
990 PRISTN" -- to
1000 PRIHT\TO 7;'’Press cursors to adjust'\TO 11;'<EHTER> to set"
1010 REPeat loop
1030 AT 10,4: PRINT mar,!ic_c_1l,!tb,!itabiiid £/10;"
1040 PAUSE: an=KEYROW (1)
1050 SELect ON an
1060 =e: mar=mar-1
1070 =16: mar=mar+i
1080 z4:; tb=tb+1
1090 £128: tb=tb-1
1100 =1: EXIT loop
1110 =REMAINDER
1120 END SELect
1130 tab=INT (tbtrt+c_1)): d_f=INT (10% (tabtc_1)/c_1+.5)
1140 AT 12,6: PRINT PILLSC’ "',25)
1150 IF mar<O OR (mar*10/c_i+d_f)/1008 OR tb<o
1160 AT 12,6: INK 0: PAPER 6
1170 PRINT * Out of range; try again ": INK 6: PAPER 2
1180 END IF
1190 END REPeat loop
1200 AT 16,7: PRINT “Is this correct? (y/n)";: gky
1210 IF an$=="y" THEN RETurn verify
1220 PRINT " Then you must rework your Quill dac”
1230 PRINT\" Exit to rework Quill doc? (y/n»;: gky
1240 «IF an$=="y'' THEN CLS: STOP
1250 PRINT * Try another document format? (y/n?;: gky: CLS
1260 IF an$=="y" THEN GO TO 100: ELSE : STOP
1270 END DEFine verify
1300 DEFine PROCedure open_file
1310 OPEN #5,con: VINDOW #5,120,256,330,0: BORDER #5,2,4
BoSTUG Sinclair/Timex Newsletter - 16 - September/October 1988
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600
1610
1620
1630
1640
1650
1660
1670
1680
1690
1700
1710
1720
1730
1740
1750
1760
1770
1780
1790
1800
1810
1820
1830
1900
1910
1920
1930
1940
1950
1960
1970:
2000
2010
2020
INK #5,6: PAPER #5,0: CLS #5
INFUT #5,\" Document on''\." DRIVE?" tavs
IF LEN (dv$)=1 THEN dv$="flp"&dvs
REMark Number of fields = 66 lines/page
REMark Field length = 99 columns
DIM 1co01$ (66,99): DIM rcol$s<66,99)
IF av$(LEN (dv$))<>"_" THEN dv$=dv$&a"_"
DIR #5,dv$&" lis’: INPUT #5,\"" Select Lis’\\" FILE:"!files
REMark Line 1390 uses Toolkit II DIR ability display only files
REMark that end in " lis”. You may have to edit out & lis”
IF NOT "_" INSTR fileS THEN file$=file$&' lis"
LET temp$=dvS&file$(1 TO ¢« "_" INSTR file$)a&''col"
END DEFine open file
DEFine PROCedure PRINT col
REMark Printer control codes are for Epson printer
REMark You may have to change for other printers
PRINT #4,CHRS$ (27)&'@’;: REMark printer reset
IF n$<>CHRS(O) THEN PRINT #4,n$;:; REMark See Lines 830/850
IF p$<>CHRS$(O) THEN PRINT #4,p8;: REMark See Line 760
IF t$<>CHRS(O) THEN PRINT #4,t8$;: REMark See Line 720
IF w$<>CHR$(O) THEN PRINT #4,w$;: REMark See Lines 580 to 610
REMark Following line sets left margin, then horizontal tab
REMark "IF an$<>'f™ and 1610 to reimport file to Quill
PRINT #4,CHR$ (27 )&'1"&CHRS (mar )&CHRS (27 )&"'D"'&CHES (tab &CHRS$ (0);
REMark END IF
REPeat col PRINT
FOR 1=1 TO 66
INPUT #3,1c01$ (1)
J=CHRS$ (13) INSTR 1col$(1)
1col$ (1,j2=CHRS (9)
REMark (G=CTRL SHIFT K
IF "2 INSTR 1lcol$ (i>? THEN ki: EXIT 1
END FOR 1
IP k: FOR 1=k TO 66: 1lcol$(1)=CHRS$ (9)
IF WOT k
FOR 1=1 TO 66
INPUT #3,rcol$(1i>
IF “ INSTR rcol$ (i) THEN k=1: EXIT 1
END FOR 1
END IF
IF k: FOR i=k TO 66: rcol$(1)=CHR$ (13)
FOR 1=1 TO 66: PRINT #4,1c01$8(1);rcol$ (1)
IF k THEN EXIT col PRINT
END REPeat col PRINT
CLOSE #3: PRINT #4,CHRS(270&"@";: CLOSE #4: CLOSE #5
END DEFine PRINT_col
DEFine PROCedure print_file
PRINT\"” Print to Paper or File (p/f)';: gky
IF an$=="p" THEN OPEN #4,serl: ELSE an$="f"
OPEN_IN #3,dv$&file$: PRINT #5,\dv$afile$\"" will be printed”
IF an$='f' THEN PRINT #5," as:"!temp$: OPEN NEW #4,temps
PRINT #5,\\" PATIENCE!" -
END DEFine print file
DEFine FROCedure s
DELETE flp2_Bi_col_bas: SAVE flp2_Bi_col_bas
END PROCedure s
BoSTUG Sinclair/Timax Newsletter - 17 - September/October 1988
behind machine code thinking, the
reader dives right into machine
lanuage programming with a look
at the CPU and how it works. The
Z-80 assembly instruction set is
axamined in detail, with examples
demonstrating their use. Later,
the author touches on advanced
soncepts like bank switching, the
floating point processor, the
function dispatcher, and how
peripherals (such as printers,
aisk drives, and modems) work.
Six appendices provide helpful
tables and information for. the
reader.
One complaint I have is with a
PRINT routine in appendix B that
had bugs in it. The author uses
the progran to teach basic
techniques to his machine code
classes at SMUG, so a detailed
explanation of the program and
what's going on is not included.
I suspect that the bugs are
deliberate and meant for his
students to correct. However,
there is no mention of this in
the manual. It can be irritating
for the beginning reader ta be
faced with a buggy program with
no hints as to how to correct it,
especially when he doesn't expect
any bugs in the first place.
Book two, Advanced 2068 Machine
Code Volume 1, covers graphics
and advanced screen programming.
If you want to write that
ultimate "Paint’ program, or you
are interested in the 2068's
advanced video modes, this book
is what you are looking for. It
begins with a few notes about
assemblers and compilers for the
2068. The second chapter starts
you out with a few simple
routines that should be in every
programmer's toolbox (screen
clear, locate screen address,
etc). Chapter three includes an
article (originally from the SMUG
Bytes newsletter) about bank
switching BASIC programs with the
Aerco disk drive's expanded
memory banks. The author expands
upon it with a discussion about
using advanced screen modes while
bank switching.
BoSTUG Sinclair/Timex Newsletter
The next three chapters are
devoted to the TS 2068's advanced
video modes: 64 and 80 ‘yes 80)
column screens, dual screen mode,
and high resolution graphics
mode. The author provides many
examples and a generous amount
of source code, including com-
plete, debugged versions of th3
advanced video mode routines from
the T/S 2068 Technical Manual.
The remainder of the book is
about game programs and the ideas
behind them. ‘Sprites' are ex-
amined and a super sprite driver
is developed that puts the Tech
Manual routines to shame. It cul-
minates ina shoot-em-up arcade
game that involves some complica~
ted timing, interrupts, and even
drawing on the border. Finally,
the book examines fractals and
how to develop the scene portion
of graphical adventure games.
For those who aspire to become
crack 2-80 assenbly language
. wizards on the 2068, these two
books are a must. If you area
beginning machine language pro-
grammer, you will not find a more
informative and well-thought out
tutorial anywhere.
Dr. Dreger is currently working
on Advanced 2068 Machine Code
Volume 2, which will cover BEEP,
sound, and music on the 2068, and
a closer look at the T/S 2068 ROM
routines, to be released in 1989.
A companion toa these books, The
imex/Sinclair 2068 ROM Manu-
script, also by Dr. Dreger, ig a
disassembly of the 2068 ROM with
comments and cross-references to
the Sinclair Spectrum ROM. It 1s
a valuable reference for assembly
language programmers of all
leagues.
The books are distributed by
S.M.U.G., the Sinclair Milwaukee
Users Group, at Box 101, Butler,
wl 53007. They are also carried
by most Timex/Sinclair dealers.
Order yours today.
~- Jim Rodlin
- 18 - September/October 1988